const webpack = require('webpack');
const common = require('./common');
const { merge } = require('webpack-merge');

module.exports = merge(common, {
  mode: 'production',
  devServer: {
    open: true,
    hot: true,
  },
  devtool: 'cheap-module-eval-source-map',
  optimization: { // 使用tree shaking production模式下 其实可以不写这句
    usedExports: true, // usedExports 可以看做是标记这棵树上的枯树枝
    minimize: false, // minimize 可以看做是摇树 把树上被标记没用的代码摇落
    // sideEffects: true // 开启副作用删除
  },
  plugins: [
    // DefinePlugin 往全局注册全局变量
    // 注意 值类型一定要用 '""' 两个引号包裹 如果只用一个引号 会被解析成变量名叫development而不是一个string
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: '"development"'
      }
    }),
    new webpack.HotModuleReplacementPlugin()
  ]
})